// pages/login/login.js
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

const Url = "http://localhost:3000/login/";
// const Url = "http://localhost:3000/login/";
import Toast from '@vant/weapp/toast/toast';
// >>>>>>> 4bc005d73fc984b38d4831cb895cc21a383ca0a3
Page({

  /**
   * 页面的初始数据
   */
  data: {
    username: "",
    password: "",

    // 提示文本
    logintext: '邮箱登录',


    // 邮箱登录
    emilloginShow: false,
    emilCode: "",
    emilloginCode: "",

    getouttime: "获取",
    getclick: true,
  },
  // 账号输入框变更逻辑
  usernameinp: function (e) {
    this.setData({
      username: e.detail.value
    })
    // console.log(this.data.username);
  },

  // 密码输入框变更逻辑
  passwordinp: function (e) {
    this.setData({
      password: e.detail.value
    })
    // console.log(this.data.password);
  },

  // 邮箱输入框变更逻辑
  emilCodeinp: function (e) {
    this.setData({
      emilCode: e.detail.value
    })
    // console.log(this.data.emilCode);
  },

  // 验证码输入框变更逻辑
  emilloginCodeinp: function (e) {
    this.setData({
      emilloginCode: e.detail.value
    })
    // console.log(this.data.emilloginCode);
  },

  // 确认登录
  loginEnter: function () {
    wx.request({
      url: Url + "login", // 请求的接口地址
      method: 'POST', // 请求方式，可以是 GET/POST 等
      data: { // 请求参数
        username: this.data.username,
        password: this.data.password
      },
      // header: {
      //   'content-type': 'application/json' // 设置请求的 header
      // },
      success(res) {
        console.log(res.data); // 请求成功后的处理

        if (res.data.logintype == 2) {
          wx.setStorageSync('token', res.data.token)
          wx.setStorageSync('username', res.data.usname)
          wx.setStorageSync('userid', res.data._id)
          wx.setStorageSync('user', res.data.user)

          wx.showToast({
            title: res.data.success, // 提示信息
            icon: 'none', // 图标类型，可以是 'success', 'loading', 'none'
            duration: 2000 // 提示的延迟时间（毫秒）
          });
          setTimeout(() => {
            wx.navigateBack();
          }, 1000)
        } else {
          wx.showToast({
            title: res.data.error, // 提示信息
            icon: 'none', // 图标类型，可以是 'success', 'loading', 'none'
            duration: 2000 // 提示的延迟时间（毫秒）
          });
        }

      },
      fail(err) {
        wx.showToast({
          title: "请求出错", // 提示信息
          icon: 'error', // 图标类型，可以是 'success', 'loading', 'none'
          duration: 2000 // 提示的延迟时间（毫秒）
        });
        console.error('请求失败:', err); // 请求失败后的处理
      }
    });

  },

  // 微信一键登录逻辑
  WXlogin: function () {
    Toast.loading({
      message: '正在登录...',
      forbidClick: true,
      // loadingType: 'spinner',
    });
    wx.login({

      success(res) {
        console.log("res", res);
        if (res.code) {
          //发起网络请求
          wx.request({
            method: 'POST',
            url: Url + "wxlogin",
            data: {
              code: res.code,
            },
            success(res) {
              console.log(res.data.user);
              wx.setStorageSync('username', res.data.user.username)
              wx.setStorageSync('userid', res.data.user._id)
              wx.setStorageSync('user', res.data.user)
              wx.setStorageSync('token', res.data.token)

              console.log("登录返回", res.data.user._id);
              wx.showToast({
                title: res.data.success, // 提示信息
                icon: 'none', // 图标类型，可以是 'success', 'loading', 'none'
                duration: 2000 // 提示的延迟时间（毫秒）
              });

              setTimeout(() => {
                Toast.clear()
                Toast.success('登录成功！');
                wx.navigateBack();
              }, 2000)
            },
            fail(err) {
              console.log('登录失败！' + res.errMsg)
              Toast.fail('登录失败！请检查网络连接');
            }
          })
        } else {
          console.log('登录失败！' + res.errMsg)
          Toast.fail('登录失败！请检查网络连接');
        }
      }
    })
  },


  // 切换邮箱登录逻辑

  emllogin() {

    this.setData({
      emilloginShow: !this.data.emilloginShow,
      logintext: !this.data.emilloginShow ? "账号登录" : "邮箱登录"

    })
  },



  // 前往注册

  gotoReg() {
    wx.navigateTo({
      url: '../Registry/Registry'
    });
  },

  // 获取验证码逻辑
  getemilloginCode() {

    function validateEmail(email) {
      const regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
      return regex.test(email);
    }

    if (this.data.getclick) {
      if (validateEmail(this.data.emilCode)) {

        wx.request({
          url: Url + "getmailloginCode", // 请求的接口地址
          method: 'POST', // 请求方式，可以是 GET/POST 等
          data: { // 请求参数
            eMailcode: this.data.emilCode,

          },

          success: (res) => {
            console.log(res.data); // 请求成功后的处理
            if (res.data.emaillogincode == 1) {

              this.setData({
                getclick: false,
                getouttime: 60,
              })
              let outtime = setInterval(() => {
                this.setData({
                  getouttime: --this.data.getouttime
                })
                if (this.data.getouttime == 0) {
                  this.setData({
                    getclick: true,
                    getouttime: "重新获取"
                  })
                  clearInterval(outtime);
                }
              }, 1000);

              Toast.success(res.data.message);

            } else {
              Toast.fail({
                message: res.data.message,
                forbidClick: true,
              });

              this.setData({
                getclick: true,
                getouttime: 3,
              })
              let outtime = setInterval(() => {
                this.setData({
                  getouttime: --this.data.getouttime
                })
                if (this.data.getouttime == 0) {
                  this.setData({
                    getclick: false,
                    getouttime: "获取"
                  })
                  clearInterval(outtime);
                }
              }, 1000);

            }

          },
          fail(err) {
            wx.showToast({
              title: "请求出错", // 提示信息
              icon: 'error', // 图标类型，可以是 'success', 'loading', 'none'
              duration: 2000 // 提示的延迟时间（毫秒）
            });
            console.error('请求失败:', err); // 请求失败后的处理
          }
        });



        // console.log("邮箱格式正确");
      } else {
        if (this.data.emilCode == '') {
          Toast.fail('邮箱不能为空')
        } else {

          Toast.fail('邮箱格式错误!');
        }

      }


      // console.log("邮箱格式错误！");
    }else{
      Toast.fail({
        message: '获取过于频繁',
        forbidClick: true,
      });
    }



    // console.log(this.data.emilCode, "获取验证码");
  },

  // 邮箱登录逻辑
  emilLoginEnter() {
    wx.request({
      url: Url + "mailweblogin", // 请求的接口地址
      method: 'POST', // 请求方式，可以是 GET/POST 等
      data: { // 请求参数
        eMailcode: this.data.emilCode,
        eMloginCode: this.data.emilloginCode,
      },

      success: (res) => {
        console.log(res.data); // 请求成功后的处理
        if (res.data.Enrollcode == 1) {
          wx.setStorageSync('token', res.data.token)
          wx.setStorageSync('username', res.data.usname)
          wx.setStorageSync('userid', res.data._id)
          wx.setStorageSync('user', res.data.user)

          Toast.success(res.data.success);

          setTimeout(() => {
            wx.navigateBack();
          }, 1000)

        } else {

          Toast.fail(res.data.error);
        }

      },
      fail(err) {
        wx.showToast({
          title: "请求出错", // 提示信息
          icon: 'error', // 图标类型，可以是 'success', 'loading', 'none'
          duration: 2000 // 提示的延迟时间（毫秒）
        });
        console.error('请求失败:', err); // 请求失败后的处理
      }
    });


  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})